﻿using JSC.Portal.Entities;
using System.Collections.Generic;
using JSC.Core.Attributes;
using JSC.Core;

namespace JSC.Portal.Services
{
    [ConcreteType("JSC.Portal.Data.PortalPageService, JSC.Portal.Core")]
    public interface IPortalPageService : IDao<PortalPage>
    {
        IList<ModuleType> GetAllModuleTypesInUse();
        PortalPage GetPortalPageByName(string name);
        PortalPage GetPortalPageByFriendlyURL(string siteAddress, string language, string url);
        PortalPage GetRootPortalPage(string siteAddress, string language);
        PortalPage GetNewPortalPageBySiteId(int siteId);
        PortalPage GetNewChildPage(int parentId);
        IList<string> GetTemplatePlaceholders(string path);
        void PropagatePermissionsToChildPages(PortalPage parentPage, bool propagateToSections);
        void PropagatePermissionsToSections(PortalPage portalPage);
        void MovePortalPage(PortalPage portalPage, MoveAction moveAction);
        IList<Language> GetAvailableLanguages(PortalPage portalPage);
        IList<PortalPage> GetLanguageRootPagesBySite(PortalSite portalSite);

    }
}
